CC=g++
CFLAGS= -O2 -Wall
OBJ= $(O)/main.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(O)/canionWarp.o $(O)/testResolucion.o $(O)/testDisparo.o $(O)/testCorrelacion.o

C= ./code
O= ./o
TEST= ./test

.PHONY	: all clean

all	: main
testing: testResolucion testDisparo testCorrelacion $(TEST)/estadistica $(TEST)/estadisticaPeleas $(TEST)/sorting $(TEST)/graficador $(TEST)/graficadorCorrelacion

new: clean all

main : $(O)/main.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(O)/canionWarp.o $(C)/defs.h 
	$(CC) $(CFLAGS) $(O)/main.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(O)/canionWarp.o $(C)/defs.h -o main
	
testResolucion : $(O)/testResolucion.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h 
	$(CC) $(CFLAGS) $(O)/testResolucion.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h -o testResolucion
	mv testResolucion ./test

testDisparo : $(O)/testDisparo.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h 
	$(CC) $(O)/testDisparo.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h -o testDisparo
	mv testDisparo ./test

testCorrelacion : $(O)/testCorrelacion.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h 
	$(CC) $(O)/testCorrelacion.o $(O)/matriz.o $(O)/vector.o $(O)/sistemas.o $(C)/defs.h -o testCorrelacion
	mv testCorrelacion ./test

$(O)/%.o : $(C)/%.cpp
	$(CC) $(CFLAGS) $^ -c -o $@
	./sh/move-cpp.sh
	
$(O)/%.o : $(TEST)/%.cpp
	$(CC) $^ -c -o $@
	./sh/move-test.sh

clean :
	rm -f $(OBJ) main arbitro $(TEST)/testResolucion $(TEST)/testDisparo $(TEST)/testCorrelacion $(TEST)/estadistica $(TEST)/estadisticaPeleas $(TEST)/sorting $(TEST)/graficador $(TEST)/graficadorCorrelacion
